import string
import random

# #方法一max函数会把“”里面的识别成字符串，a会变成ASCII码值所有此方法有局限性要给文本加上引号
# with open('big.data','a+', encoding="utf-8") as f: f.write('\'aaaaaaaaaaaaaaaaaa\'\n'*10**1)
# # with open('big.data','w+', encoding="utf-8") as f:
# #     f.write(("".join(str(random.choices(string.ascii_lowercase,k=random.randint(1,50))))+"\n").encode("utf-8"))
# # 定义一个方法
# def max_Line(file_name):
#     with open(file_name, 'r') as f:  # 打开文件
#         max_line = max((line.strip() for line in f))
#     return '文件中最长的行为：{}'.format(max_line)
#
# print(max_Line('big.data'))


######
#方法二

#1.如何判断第一个对象是可迭代对象，迭代器对象或生成器
    # 可迭代对象： 可作用于for循环的对象
    # 迭代器对象：可用于next()函数并能不断调用的对象叫迭代器对象
    # 生成器：生成器对象是一个存储算法并能记录上次位置的对象《惰性对象》---带有yield关键字

#2.迭代器与生成器的区别
    # 迭代器是：一个可以记住遍历位置的对象
    # 使用了yield的函数被称为生成器，跟普通函数不同生成器是一个返回迭代器的函数，只能用于迭代操作，是一个特殊的迭代器

#3.可迭代对象与迭代器的区别
# 区别：
# 可迭代对象：只能使用for循环遍历的数据，如：集合类型【list、tuple、dict、set、string】和生成器【（）生成器和函数生成器】
# 迭代器：可以使用for循环或者next遍历的数据，如：生成器
# 联系：
# 迭代器一定是可迭代对象，可迭代对象不一定是迭代器
# 可以通过iter（）将不是迭代器的可迭代对象转化为迭代器

#4.如何定义一个生成器
# # 在python中可通过关键字yield将一个普通函数改造成生成器函数
# def fib(n):
#     a,b = 0,1
#     for i in range(n):
#         yield  b
#         a,b = b,a+b
#
#
#
# for i in fib(15):
#     print(i,end=' ')


#5.如何获取可迭代对象，迭代器与生成器中的数据
# 可以使用for遍历读取

# # 1、输入两个日期，计算两个日期之间相差的天数
# from datetime import datetime
# print("请输入一个：2018-01-24这样格式的日期！")
# date1 = input("请输入较小的一个日期：")
# date2 = input("请输入较da的一个日期：")
# date1 = datetime.strptime(date1,'%Y-%m-%d')
# date2 = datetime.strptime(date2,'%Y-%m-%d')
# days = (date2 - date1).days
# print(days)

from datetime import *

# date1 = datetime.strptime('2018-05-29', '%Y-%m-%d')
# date2 = datetime.strptime('2019-05-31', '%Y-%m-%d')
# # 我们可以知道时间间隔是1年25小时1分钟
#
# # 时间间隔的属性有 days,seconds,total_seconds()
# interval_day = (date2-date1).days
#
# print(interval_day)









# 2、输入一个数字n，计算n天之前是什么日期，输出日期形式为“2021-07-27”

# d = date.today()
# n = int(input("请输入想要查询的第n天前的日期："))
# delta = timedelta(days=n)
# print("当前的日期是：", d)
# print(f"{n}天之前的日期是：", d - delta)
# 3、统计当前文件夹的大小（python实现，预备知识：os模块）
import os
folder = os.path.join('c:', 'Program Files', 'Bandizip')
# C:\Program Files\Bandizip
file = os.path.join(folder, 'Bandizip.exe')

print(str(os.path.getsize(file) / 1024) + 'KB')
# print(os.listdir(folder))

